package menubis;

import javax.microedition.lcdui.*;
import java.util.*;

/**
 * rol de controlador 
 * separado del modelo MenuElement antiguo o OpcionDeMenu actual
 * @author Administrador
 *
 */
public class ControladorListaConMenuDeOpciones implements CommandListener
{




  public void commandAction(Command command, Displayable displayable)
  {
	  
    if ( command.equals( List.SELECT_COMMAND ) && displayable instanceof ListaConMenuDeOpciones )
    {
    	ListaConMenuDeOpciones list = (ListaConMenuDeOpciones) displayable;
    	//ListaConMenuDeOpciones list = (ListaConMenuDeOpciones) displayable;
      int i = list.getSelectedIndex();
      OpcionDeMenu item = (OpcionDeMenu) list.opcionesDeListaModelo.listaDeopciones.elementAt( i );
      Object opcionSeleccionada = list.opcionesDeListaModelo.navegacionMap.get( item );

      if ( opcionSeleccionada instanceof OpcionDeMenu )
      {
        list.pintaOpcionesDeMenu( (OpcionDeMenu) opcionSeleccionada ,list.anterior);

      } else if ( opcionSeleccionada instanceof ModeloVisualizable && opcionSeleccionada instanceof Displayable )
      {
        
    	ModeloVisualizable modeloVisualizable = (ModeloVisualizable)opcionSeleccionada;

    	modeloVisualizable.incluirModelo( item );

        list.getDisplay().setCurrent( (Displayable) modeloVisualizable );

      } else if ( opcionSeleccionada instanceof Displayable )
      {
        list.getDisplay().setCurrent( (Displayable) opcionSeleccionada );
      }
    }
    
    if (displayable instanceof ListaConMenuDeOpciones){ 
    	System.out.print("Pasa");
	    ListaConMenuDeOpciones list = (ListaConMenuDeOpciones) displayable;
	    if (command.equals(list.volver)){
	    	
	    	System.out.print("Si");
	    	
	    	//int i = list.getSelectedIndex();
	        //OpcionDeMenu item = (OpcionDeMenu) list.opcionesDeListaModelo.listaDeopciones.elementAt( i );
	        list.pintaOpcionesDeMenu( list.anterior  ,list.anterior);
	        
	    	//list.setCurrent( list.anterior );
	    	
	        //int i = list.getSelectedIndex();
	        
	        
	        
	        /**
	        OpcionDeMenu item = (OpcionDeMenu) list.opcionesDeListaModelo.listaDeopciones.elementAt( i );
	        Object opcionSeleccionada = list.opcionesDeListaModelo.navegacionMap.get( item );
	        
	        if ( opcionSeleccionada instanceof OpcionDeMenu )
	        {        	
	        	list.pintaOpcionesDeMenu( item );
	
	        } else if ( opcionSeleccionada instanceof ModeloVisualizable && opcionSeleccionada instanceof Displayable )
	        {
	          
	      	ModeloVisualizable modeloVisualizable = (ModeloVisualizable)opcionSeleccionada;
	
	      	modeloVisualizable.incluirModelo( item );
	
	          list.getDisplay().setCurrent( (Displayable) modeloVisualizable );
	
	        } else if ( opcionSeleccionada instanceof Displayable )
	        {
	          list.getDisplay().setCurrent( (Displayable) opcionSeleccionada );
	        }
	        **/
	        
	      }

	    if (displayable instanceof ModeloTextBox){
	    	ModeloTextBox texb = (ModeloTextBox) displayable;
	    	System.out.print(" Pasando1 ");
	    	if (command.equals(texb.volver)){
		    	System.out.print(" Pasando2 ");
		    	list.pintaOpcionesDeMenu( texb.anterior  ,texb.anterior);
		    }
	    	
	    }
    }
    
    
  }
}
